MIT is developing a version of smart sand that can move all by itself !MIT research scientist John Romanishin has been working on (or at least thinking about) M-Blocks for the past several years, but from the sound of things, everyone thought he was nuts until he managed to actually go make it work. The way it works looks like magic, but it's just physics: by spinning an internal flywheel at up to 20,000 rpm and then suddenly applying a brake, the conservation of angular momentum causes the entire cube to flip, and in some cases, even jump an appreciable distance. There's only one axis of movement at the moment, but there's always the potential to add two more flywheels to enable movement in any direction.
The cubes stick to each other with an arrangement of magnets that encourage them to pivot around edges while sticking to faces. It's clever, but the issue with using permanent magnets is that it makes it difficult to stick one cube to another specific cube if there are cubes in the way: the only way to do it becomes with multiple powered movements, which wastes time and energy. It would be preferable to be able to toggle the magnets on each cube on and off, making it much easier to stick cube X to cube Y without having to worry about accidentally running into (and sticking to) cube N.
With this in mind, it's interesting to note that the Smart Sand used electropermanent magnets (magnets that you can turn on and off) to selectively get cubes to stick to one another. You can read a lot more about Electropermanent Magnets here, and that could be where M-Blocks are heading next. With selective attachment capabilities and three axes of control, we can imagine that a swarm of M-Blocks could start doing some wild things.
Source: IEEE Spectrum